#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
long long a,b,c;
struct zyt{
	long long x,y,z;
}d[10000],e[10001];
bool zyt1(zyt x,zyt y){
	if(x.x!=y.x) return x.x<y.x;
	else return x.y<y.y;
}
int main(){
	freopen("sort.in","r",stdin);
	freopen("sort.out","w",stdout);
	scanf("%lld%lld",&a,&b);
	for(int x=1;x<=a;x++){
		scanf("%lld",&d[x].x);
		d[x].y=x,e[x]=d[x];
	}
	sort(e+1,e+a+1,zyt1);
	for(int x=1;x<=a;x++) d[e[x].y].z=x;
	for(int x=1;x<=b;x++){
		long long i,j,k;
		scanf("%lld%lld",&i,&j);
		if(i==1){
			scanf("%lld",&k);
			d[j].x=k;
			for(int y=1;y<=a;y++) e[y]=d[y];
			sort(e+1,e+a+1,zyt1);
        	for(int y=1;y<=a;y++) d[e[y].y].z=y;
		}else printf("%lld\n",d[j].z);
	}
}
